package com.dhj.yygh.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhj.yygh.model.order.OrderInfo;
import com.dhj.yygh.vo.order.OrderCountQueryVo;
import com.dhj.yygh.vo.order.OrderQueryVo;

import java.util.Map;

/**
 * 订单接口
 */
public interface OrderInfoService extends IService<OrderInfo> {

    /**
     * 根据排班 id 和就诊人 id 创建订单
     *
     * @param scheduleId 排班 id
     * @param patientId  就诊人 id
     * @return 返回订单号
     */
    Long createOrder(String scheduleId, Long patientId);

    /**
     * 根据 orderId 获取订单详情信息
     *
     * @param orderId 订单详情
     * @return 返回 ordeerInfo 对象
     */
    OrderInfo getOrderDetail(Long orderId);

    /**
     * 分页条件查询订单列表
     *
     * @param page         当前页
     * @param limit        每页记录数
     * @param orderQueryVo 条件查询对象
     * @return 返回分页对象
     */
    Page<OrderInfo> getOrderList(Long page, Long limit, OrderQueryVo orderQueryVo);


    /**
     * 取消订单
     *
     * @param orderId
     */
    Boolean cancelOrder(Long orderId);

    /**
     * 就诊当天八点就诊短信提醒
     */
    void patientTips();

    /**
     * 订单的预约统计
     *
     * @param orderCountQueryVo
     * @return
     */
    Map<String, Object> getOrderCountMap(OrderCountQueryVo orderCountQueryVo);

}
